// 要求得到的条件为提交btn的id与form的id与form的回调方法
i = {};
/**
 * @param btnId 提交的button
 * @param formId 提交的表单
 * @param afterCall 提交success之后执行的方法
 * @param beforeCall 提交之前执行的方法
 * @param failCall 提交失败之后执行的方法
 * @param 
 */
i.formSubmit = function(btnId , formId , afterCall , beforeCall , failCall){
	$('#'+btnId).click(function(){
		// 建立一个用于得到节点的name与value的数组
		var name_value = new Array();
		// 得到form表单下的所有节点
		// 取得所有可提交的对象 也就是指在button与submit与reset之外的所有对象
		$.each($('#'+formId+' input , #'+formId+' select , #'+formId+' textarea') , function(){
			if($(this).attr('type')!='button' && $(this).attr('type')!='submit' && $(this).attr('type')!='reset'){
				// $(this).css("border" , "1px solid red");
				// 取出表单对象下的可提交元素的name与value
				var _name = $(this).attr('name');
				var _value = $(this).attr('value');
				// 取出name与value数组
				var nodeArr = new Array();
				nodeArr.push(_name);
				nodeArr.push(_value);
				// 添加到总的数组中
				name_value.push(nodeArr.join("="));
			}
		});
		// 提交表单
		// 得到数据
		var _data = name_value.join("&");
		// 得到form表单的action 
		var _action = $('#'+formId).attr('action');
		 $.ajax({
		   type: "POST",
		   url: _action,
		   data : _data,
		   success: afterCall,
		   error : failCall,
		   beforeSend : innerBeforeCall
		});
	});
	// 进行数据的验证，把验证方法内置到提交方法中
	innerBeforeCall = function(){
		/*
		 * 表单验证的要求，要求得到一个返回值来确定是否验证成功；
		 */
		// $('#'+formId).validationEngine();
		var validateResult = $('#'+formId).validate(formId);
		
		// beforeCall();
		// 返回false就不再进行提交
		if(null != beforeCall && beforeCall.constructor == Function){
			beforeCall();
		}
		
		return validateResult;
	}
}
